package com.zhanghe.study.study_scala.oop

import com.zhanghe.study.study_scala.oop.Cat
/**
 * @author zh
 * @date 2021/5/1 11:50
 */
object TestOOP {
  def main(args: Array[String]): Unit = {

    val cat= new Cat("小猫")
    cat.name = "小花"
    cat.color = "黄白"
    // 可以直接使用类来调用伴生对象中的字段和方法
    Cat.count

    val aCat = Cat()

    println(aCat.name)
  }
}

// 伴生类
class Cat(cName:String){

  // _表示赋默认值
  var name:String = cName
  var color:String = _
  // 如果属性声明为val则必须赋一个明确值，且只会生成getter方法不会生成setter方法
  val life:Int = 10
}

// 伴生对象
object Cat{
  var count:Int = _

  def apply():Cat = new Cat("小花")

}


